// pages/publish/publish.js
const app = getApp();

Page({
  /**
   * 页面的初始数据
   */
  data: {
    laborTypes: [], // 劳务类型列表
    selectedTypeId: null, // 选中的劳务类型ID
    selectedTypeName: '', // 选中的劳务类型名称
    loading: true // 加载状态
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 检查登录状态
    if (!app.utils.checkLoginStatus()) {
      wx.reLaunch({
        url: '/pages/login/login'
      })
      return
    }

    // 检查是否已选择学校
    if (!app.utils.checkSchoolId()) {
      wx.reLaunch({
        url: '/pages/school-select/school-select'
      })
      return
    }

    this.loadLaborTypes();
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    // 检查登录状态
    if (!app.utils.checkLoginStatus()) {
      wx.reLaunch({
        url: '/pages/login/login'
      })
      return
    }

    // 检查是否已选择学校
    if (!app.utils.checkSchoolId()) {
      wx.reLaunch({
        url: '/pages/school-select/school-select'
      })
      return
    }

    // 设置tabBar选中状态
    if (typeof this.getTabBar === 'function' && this.getTabBar()) {
      this.getTabBar().setData({
        selected: 2
      })
    }
    
    // 每次显示页面时刷新数据
    this.loadLaborTypes();
  },

  /**
   * 加载劳务类型列表
   */
  async loadLaborTypes() {
    this.setData({ loading: true });
    try {
      const result = await app.utils.request({
        url: '/labor-types/enabled',
        method: 'GET'
      });
      console.log('获取劳务类型成功:', result);
      if (result.code === 200) {
        this.setData({
          laborTypes: result.data || [],
          loading: false
        });
      } else {
        this.showError(result.message || '获取劳务类型失败');
        this.setData({ loading: false });
      }
    } catch (error) {
      console.error('获取劳务类型失败:', error);
      this.showError('获取劳务类型失败');
      this.setData({ loading: false });
    } finally {
      wx.stopPullDownRefresh();
    }
  },

  /**
   * 选择劳务类型
   */
  onSelectType(e) {
    const { id, name } = e.currentTarget.dataset;
    console.log('选择劳务类型:', id, name);
    
    this.setData({
      selectedTypeId: id,
      selectedTypeName: name
    });

    // 添加触觉反馈
    wx.vibrateShort({
      type: 'light'
    });
  },

  /**
   * 继续发布
   */
  onContinuePublish() {
    if (!this.data.selectedTypeId) {
      wx.showToast({
        title: '请选择劳务类型',
        icon: 'none',
        duration: 2000
      });
      return;
    }

    console.log('继续发布，选中类型:', this.data.selectedTypeId, this.data.selectedTypeName);
    
    // 跳转到具体的发布页面，传递选中的劳务类型
    wx.navigateTo({
      url: `/pages/labor/publish/publish?typeId=${this.data.selectedTypeId}&typeName=${encodeURIComponent(this.data.selectedTypeName)}`
    });
  },

  /**
   * 显示错误信息
   */
  showError(message) {
    this.setData({ loading: false });
    wx.showToast({
      title: message,
      icon: 'none',
      duration: 3000
    });
  },

  /**
   * 下拉刷新
   */
  onPullDownRefresh() {
    this.loadLaborTypes();
    wx.stopPullDownRefresh();
  },

  /**
   * 页面分享
   */
  onShareAppMessage() {
    return {
      title: '校园帮手 - 发布服务',
      path: '/pages/publish/publish'
    };
  }
});